1. Technical Field
The present invention relates to client computers that are bootable over a network and, in particular, to the remote booting of multiple operating systems by those client computers.
2. Description of Related Art
Some current personal computer motherboards, network adapters, and boot diskettes include support for the preboot execution environment (PXE) to download an operating system (OS) from the network. PXE relies on extensions to the bootstrap protocol (BOOTP) and dynamic host configuration protocol (DHCP) to identify the source of the OS. PXE uses the trivial file transfer protocol (TFTP) to download the OS. PXE also requires the services of a DHCP server, a PXE proxy server, a boot image negotiation layer (BINL) server and a TFTP server.
BOOTP is a protocol that operates on networks that can also operate the transmission control protocol/Internet protocol (TCP/IP). BOOTP was developed to be used by a diskless workstation or network computer (NC) to obtain its own IP address, the IP address of a boot server, and the name of the file on that boot server that the client could request to start the download of its OS. Upon startup, the client station sends out a BOOTP request to the BOOTP server, which returns the required information. The BOOTP request and response use an IP broadcast function that can send messages before a specific IP address is known. BOOTP requires that an IP address be manually pre-assigned to each client when the BOOTP server is configured. Only one OS file name can be entered when the BOOTP server is configured, so all clients must receive the same OS. The software that transfers the OS files to the client must run on the same physical server as the BOOTP server software that supplies the IP addresses and OS file name information to the client.
DHCP is a protocol based on the BOOTP protocol that was developed to offer improved flexibility for the configuration of computers attached to a network. DHCP servers operate software that automatically assigns IP addresses to client stations logging onto a TCP/IP network. DHCP eliminates having to manually assign permanent IP addresses to clients.
PXE extensions added to the DHCP protocol enables DHCP to redirect client stations that need to be booted to a BINL server to obtain boot information, permitting client configuration and client boot to be administered separately. In fact, two different servers can respond to the initial DHCP request from a client. A xe2x80x9cstandardxe2x80x9d DHCP server offers the client an IP address. A proxy DHCP, also called a xe2x80x9cPXE proxyxe2x80x9d server, redirects the client to a BINL server.
The BINL server references the address of a TFTP boot server and the name of the file to request from the TFTP boot server that contains a network bootstrap program (NBP). The client communicates with the BINL server using DHCP-formatted messages.
PXE enables a client network computer that lacks a native operating system to locate and identify an NBP through a network attachment using DHCP and its extensions. PXE also enables the client network computer to acquire the NBP from the TFTP server through that network attachment. PXE also provides a means for running the NBP on the client to continue the network acquisition of additional software required to make the client capable of performing the more complex and useful tasks assigned to it by an enterprise.
A facilitating property of DHCP is that the client does not initially need the address of any other computer. The client performs a DHCP broadcast to discover any DHCP server or PXE proxy server that can recognize that the client is PXE-capable. The DHCP server or PXE proxy server sends a DHCP offer to the client, which contains the address of the BINL server. The client then sends a BINL request to the BINL server. The BINL server returns a BINL reply that references the address of a TFTP boot server and the name of a file from which the client may obtain the NBP. The client then obtains the NBP and all necessary software from the boot server via TFTP.
Current approaches to selecting the operating system to boot on a target client have a dependency on the BINL server which is delivered by multiple vendors, such as Intel, IBM and Microsoft, with different implementations and behaviors on each platform. When attempting to manage the remote boot of multiple operating systems there is the problem of how to seamlessly switch bootstraps that are specific to each operating system without having to write a lot of unique code per BINL server per platform per vendor to concurrently switch the bootstrap file name that is referenced in the BINL server""s configuration. In addition, several of these BINL servers have to be stopped and restarted after every configuration change. This is an expensive process, is platform specific, and also affects the production clients which depend on a running BINL server in order to remote boot correctly.
Therefore, a method to remote boot multiple operating systems without having to reconfigure the BINL server for each change in a client operating system would be desirable.
The present invention provides a chained bootstrap that is identified on a Boot Image Negotiation Layer (BINL) server and which is specified as the default bootstrap for the remote booting of client machines. The default bootstrap is downloaded as the initial bootstrap when the client sends the remote boot request to the TFTP boot server identified by the BINL server. This bootstrap then acquires a configuration file for the client from the TFTP server and determines the specific OS and associated bootstrap to download to the client. The chained bootstrap then relocates itself in memory on the client so that the actual client OS bootstrap can load and execute properly. The chained bootstrap then requests the actual client OS bootstrap from the TFTP server to continue the boot of the OS.